Unity的Mvc模式的Model层的数据绑定

您所在的位置:网站首页 双向绑定 单向绑定 趋势 Unity的Mvc模式的Model层的数据绑定

Unity的Mvc模式的Model层的数据绑定

2024-07-10 22:40:10| 来源: 网络整理| 查看: 265

设计模式: “#委托事件” 数据绑定的构成; 绑定源绑定目标绑定对象 绑定源

用于绑定的数据源,可以是任意类的实例,绑定源是数据的提供者或发送者。它可以是一个变量、属性、字段、方法或其他对象。绑定源负责维护数据的状态,并在数据发生更改时通知绑定目标。在Unity中,绑定源可以是游戏对象的组件或脚本中的变量。 ``用来绑定的基类;

/// /// 实现INotifyPropertyChanged接口来协助数据源进行绑定; /// public abstract class BindableBase : INotifyPropertyChanged { /// /// 用于数据绑定的事件; /// public event PropertyChangedEventHandler? PropertyChanged; /// /// 检查属性值是否发生改变,如果改变立刻通知事件的订阅者; /// /// /// 当前属性值 /// 更改的值 /// 更改的属性名,使用了CallerMemberName可以自动通知订阅者更改的属性名 /// protected bool SetProperty(ref T storage, T value, [CallerMemberName] String propertyName = null!) { if (object.Equals(storage, value)) return false; storage = value; OnPropertyChanged(propertyName); return true; } /// /// 触发事件告知订阅者; /// /// protected void OnPropertyChanged([CallerMemberName] string propertyName = null!) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } 绑定目标

绑定目标是数据的接收者或接收方。它可以是一个变量、属性、字段、方法或其他对象。绑定目标用于接收绑定源发送的数据,并在数据更新时进行相应的处理。在Unity中,绑定目标可以是UI元素(如文本框、滑块等)的属性或其他游戏对象的组件。

绑定对象

绑定对象是连接绑定源和绑定目标的中间件。它负责建立和管理绑定源和绑定目标之间的关联关系,并确保数据的变化能够在它们之间传递。在Unity中,可以使用Unity的UI系统、Unity的事件系统或自定义脚本来实现绑定对象。

单向绑定和双向绑定 单项绑定

单向绑定是指数据的传递和同步只在一个方向上进行,从绑定源到绑定目标。在单向绑定中,当绑定源的数值发生变化时,这些变化会自动传递给绑定目标,使其保持与绑定源同步。然而,当绑定目标的数值发生变化时,这些变化不会反向传递给绑定源。

适用情况: 当只需要将数据从一个对象传递到另一个对象时,而不需要在绑定目标上修改数据并将更改传递回绑定源时,可以使用单向绑定。单向绑定适用于只需将数据从一个对象显示到另一个对象或执行一些只读操作的情况。 ``示例: using UnityEngine; using UnityEngine.UI; public class DataBindingExample : MonoBehaviour { public Text nameLabel; public Slider healthSlider; private string playerName = "Player"; private float playerHealth = 100f; private void Start() { // 将nameLabel的文本与playerName变量进行绑定 nameLabel.text = playerName; // 将healthSlider的值与playerHealth变量进行绑定 healthSlider.value = playerHealth; } public void UpdatePlayerName(string newName) { // 当输入框文本发生变化时,更新playerName变量并同步到nameLabel playerName = newName; nameLabel.text = playerName; } public void UpdatePlayerHealth(float newHealth) { // 当滑块值发生变化时,更新playerHealth变量并同步到healthSlider playerHealth = newHealth; healthSlider.value = playerHealth; } } 双向绑定

双向绑定是指数据的传递和同步在两个方向上进行,既可以从绑定源到绑定目标,也可以从绑定目标到绑定源。在双向绑定中,当绑定源的数值发生变化时,这些变化会自动传递给绑定目标,同时当绑定目标的数值发生变化时,这些变化也会反向传递给绑定源。

适用情况: 当需要在绑定源和绑定目标之间实现双向数据传递和同步时,例如在表单中输入数据并自动更新数据模型,可以使用双向绑定。双向绑定适用于需要在绑定源和绑定目标之间进行交互和动态更新的情况。 ``示例: using UnityEngine; using UnityEngine.UI; public class TwoWayBindingExample : MonoBehaviour { public InputField nameInput; public Text nameLabel; private string playerName = "Player"; private void Start() { // 将nameInput的onValueChanged事件与UpdatePlayerName方法进行绑定 nameInput.onValueChanged.AddListener(UpdatePlayerName); // 将playerName与nameLabel进行双向绑定 UpdateNameLabel(); } private void UpdatePlayerName(string newName) { // 当输入框文本发生变化时,更新playerName变量并同步到nameLabel playerName = newName; UpdateNameLabel(); } private void UpdateNameLabel() { // 将playerName的值更新到nameLabel nameLabel.text = playerName; } } 总结

单向绑定适用于只需将数据从一个对象传递到另一个对象的情况,而双向绑定适用于需要在绑定源和绑定目标之间实现双向数据传递和同步的情况。选择使用哪种绑定方式取决于您的具体需求和场景。有时候,单向绑定足够满足需求并且更简单,而在其他情况下,双向绑定可以提供更强大的交互性和实时更新的功能。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭